import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 沈明月
 * Date: 2022-11-02
 * Time: 11:19
 */
public class TestNight {
//求水仙花数
//水仙花数是指一个三位数，其各位数字的立方和等于该数本身，例：153=1^3+5^3+3^3
//判断一个数是否是水仙花数：
    public static void main1(String[] args) {
        //输入要判断的数字：
        System.out.println("请输入要判断的数：");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        //对该数进行判断：
        int tmp = n;
        int sum = 0;
        int count = 3;
        while(tmp != 0){
            sum += Math.pow(tmp%10,3);
            tmp /=10;
        }
        if(sum == n){
            System.out.println(n+"是一个水仙花数");
        }else{
            System.out.println(n+"不是一个水仙花数");
        }
    }
//求出0~999的水仙花数：
//因为水仙花数是三位数，很多条件确实都确定了：
    public static void main2(String[] args) {
        //输入截至的数：（本题可以不输入，直接把n换成999)
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        //判断是不是水仙花数
        for (int i = 100; i <= n; i++) {
            int tmp = i;
            int count = 3;
            //2.进行判断：
            tmp = i;
            int sum = 0;
            while(tmp != 0){
                sum += Math.pow(tmp % 10,count);
                tmp /= 10;
            }
            if(sum == i){
                System.out.print(i+" ");
            }
        }
   }

//推广到一般情况：
//即，满足一个数它有n位数，则其各个位上的n次方相加等于它本身
    public static void main3(String[] args) {
        //输入一个截止数：
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();

        for (int i = 0; i <= n; i++) {
            //求位数：
            int count = 0;
            int tmp = i;
            while(tmp != 0){
                count++;
                tmp /= 10;
            }
            //判断是否满足条件：
            tmp = i;
            int sum = 0;
            while(tmp != 0){
                sum += Math.pow(tmp%10,count);
                tmp /=10;
            }
            if(sum == i){
                System.out.print(i+" ");
            }
        }
    }
}



